home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
utils
/
virus
/
virend31.zoo
/
virendet.3-1
/
wprotect
/
wprotect.s
< prev
next >
Wrap
Text File
|
1992-02-22
|
26KB
|
818 lines
*******************************************************************************
*
* >> WPROTECT.S << V1.01 17.01.1992
*
* Shareware © by
* Christoph Conrad
* Adalbertsteinweg 113
* 5100 Aachen
*
* E-Mail (lieber die als P*ST) direkt über
* MAUS: Christoph Conrad @ AC3
* ...und die Gateways
* FIDO: Christoph Conrad % Maus AC3 2:242/2.6
* USEnet: Christoph_Conrad@ac3.maus.de
* Zerberus: Christoph_Conrad%ac3@zermaus.zer
* BTX: Seite *35008024#, im Formular ausfüllen
* Christoph_Conrad@AC3.MAUS.DE.UUCP
* (kostet 90 Pfennig)
*
* Dieses Programm liegt auch dem VIRENDETEKTOR bei, _DEM_ Virensuchprogramm
* auf dem ATARI ST/TT von Volker Soehnitz @ AC. Keiner bietet mehr!
* Lassen Sie sich registrieren und geniessen Schutz vor allen aktuellen
* Viren durch den Updateservice.
*
* Wenn Sie den Sharewarebeitrag für den VIRENDETEKTOR bezahlt haben,
* müssen Sie KEINEN Sharewarebeitrag für WProtect zahlen! Falls Sie
* keinen Sharewarebeitrag für den VIRENDETEKTOR zahlen wollen/können,
* WProtect aber trotzdem regelmässig nutzen, sind Sie verpflichtet,
* den Sharewarebeitrag in Höhe von 10,- DM zu bezahlen.
* Details siehe WPROTECT.TXT
*
* WProtect kann allerdings auch so weiterkopiert werden, allerdings nur
* _MIT_
* WPROTECT.S
* WPRORSC.S
* WPROTECT.PRG (Unter GEM/Autoordner, durch Umbenennen auch Accessory)
* WPROTECT.RSC
* WPROTECT.RSD (Kuma NRCS)
* WPROTECT.TXT
*
* Liebe Leute, diese Source entstand vor grauer Vorzeit. Also verzeiht mir
* die nicht ganz so übersichtliche Programmierung (in der nächsten Version
* komplett überarbeitet).
*
* Im folgenden bedeute
*
* + Neues Feature
* - Beseitigter Bug / Unschönheit / Inkompatibilität
*
* History:
* 0.97/f: - Sicherungslaufwerk jetzt aus _bootdev ($446)
* - _drvbits / ProtDrive / ProtDouble wird jetzt als 32 Bit behandelt
* (Laufwerke A-Z)
* - Im Accessory werden jetzt bei jeder Aktivierung die aktuellen
* Schutzwerte aus dem CurrentVec übernommen (sonst würde eine
* zwischenzeitliche Änderung über einen Programmaufruf ignoriert)
* + Nachfrage bei Sichern auf X:\AUTO\WPROTECT.PRG (X == Bootlaufwerk),
* falls Bootlaufwerk als geschützt gilt.
* + Accessory erkennt nachträglich installierten Schutz.
* + Unterstützung des VA-Protokolls (VA_START)
*
* Die magische Grenze...
*
* 1.00: (internal release, not distributed)
* + GEM-Dialogbox
* Zum Umwandeln der Resource in Assemblerquellcode verwende
* ich RSC_TO_S.PRG von
* »Bernd Eckstein« @ AC (Shareware, 10,- die sich lohnen!)
* Version >= 1.18!! ( Hallo Bernd =:^} )
* + Erkennung des residenten Prg über Cookies anstatt XBRA
* COOKIE-Library von
* »Arnd Beissner« @ MS (PD, sehr einfach in der Anwendung)
* Version >= 1.03!!
* In Version 1.03 sind noch eine Menge bra, die sich in bra.s
* umwandeln lassen.
* + Anpassung des Resourcefiles an Letemfly von
* »Oliver Scheel« @ K (PD, 'man fliegt nicht mehr ohne...')
* Version >= 1.14!!
* Die Laufwerksbuttons 'A'-'Z' sind über ALT-A - ALT-Z erreichbar.
* UNDO entspricht dem Abbruchbutton, HELP dem Sichernbutton.
* In V1.14 verhält sich die Letemfly-form_alert-Routine bezüglich
* innerhalb der Box zentrierter Texte anders als die Original-
* VDI-Routine. Dies ist ein rein kosmetisches Problem.
*
* Alle über MAUS E-Mail addressierbaren Leute können auch über die
* Gateways erreicht werden, indem mein Name und mein Mausknoten (@AC3)
* gegen ihren Namen/MAUS-Knoten ausgetauscht wird, also etwa
* FIDO: Bernd Eckstein % Maus AC @ 2:242/2.6
*
* 1.01: + Für das Sichern der Konfiguration wird das Bootlaufwerk
* DGetDrv (GEMDOS 25) im Autoordner-Programm ermittelt.
* + Versionsnummer abfragbar (siehe Source Label 'Version')
* + LinksShift+[Button]Nochmal in der Critical-Error-Handler-Box
* hebt den Schreibschutz für dieses Laufwerk auf!
*
* Future Releases (*+ bei genügender Zahlungsmoral)
* + MetaDOS-Laufwerke werden definitiv unterstützt
* *+ CPX-Modul (wenn es dazu ein vernünftiges Assembler-Toolkit gibt)
* *+ Kommandozeile a la
* WPROTECT +ABC-EFG schützt A/B/C, entschützt E/F/G
* und lässt den Schutzstatus aller anderen Laufwerke unangetastet
* WPROTECT ++-EF schütze alle ausser E und F
* WPROTECT --+EF entschütze alle, schütze E und F
* *+ Buttons [ Schütze alle ] / [ Entschütze alle ]
* +- WPROTECT.INF-Datei anstatt Speichern der Parameter im
* Programm selbst.
* + aufgeräumterer Source
* + bessere Dokumentation
*
* mfg chris.
*
* Assemblieren mit MadMac V 0.13 (uralt, aber schnell & zuverlässig)
* Kommandozeile: -p wprotect
*
* WPRORSC.S (das umgewandelte Resourcefile) + COOKIE.S
* müssen sich in demselben Verzeichnis wie WPROTECT.S befinden!
*
* Noch einige Bemerkungen zur RESOURCE. Die Objekte müssen mit 'Erst X, dann Y'
* sortiert sein, damit die Laufwerksknöpfe aufsteigende Objektindize haben.
*
* In der umgewandelten Resource bezeichnet
* OBJCs000 Anzahl Objekte in Baum 1
* Objc000000 Label des ersten Objekt in Baum 1
* Falls Ihr Resourcekonverter andere Bezeichnungen wählt, müssen Sie
* diese anpassen.
*
*******************************************************************************
WRITE_PROTECT EQU -13 ; Bios-Fehlermeldung
_bootdev EQU $446
hdv_rw EQU $476 ; Harddisk Schreiben-Lesen
_drvbits EQU $4C2
NrOfDrives EQU 26
.macro AES func
lea \func(pc),a0
bsr CallAES
.endm
.macro SupExec func
lea \func(pc),a0
bsr SupExec
.endm
.macro ZeigeAlert func
move.l #\func,addrin
move.w #1,intin ; Defaultbutton 1
AES FormAlert
.endm
.macro GEMDOS trpno, clean
.if \trpno != 0
move.w #\trpno,-(sp)
.else
clr.w -(sp)
.endif
trap #1
.if \# = 2
.if \clean <= 6 ; -2 wegen trpno
addq.w #2+\clean,sp ; .w ok, da Extension automatisch!
.else
lea 2+\clean(sp),sp
.endif
.endif
.endm
.TEXT
Anfang: bra Install
*---------------------------
*---------------------------
Version: DC.L '1.01' ; Position: -18(NewHdvRW)
AutoBootDrv:DC.W 0 ; aktuelles Laufwerk bei Autoordner-Programm
* Bitstring zu schützender Laufwerke Bit 0 == A:, Bit 1 == B: etc.
ProtDrive: DC.L 0 ; Position: -16(NewHdvRW)
*
* XBRA-Struktur
*
XBRA: DC.B "XBRA" ; Position: -12(NewHdvRW)
Ident: DC.B "WPRO" ; Position: -8(NewHdvRW)
; alter hdv_rw-Vektor
OldHdvRW: DC.L 0 ; Position: -4(NewHdvRW)
* Neuer hdv_rw-Vektor
NewHdvRW:
ProtDriveOffs EQU ProtDrive - *
AutoBootDrvOffs EQU AutoBootDrv - *
movem.l d1-a6,RegSave
btst.b #0,5(sp) ; Read-Write-Flag
beq.s gotoOld ; es wird nur gelesen
move.w 14(sp),d3 ; Laufwerk 0=A:, 1=B: etc.
move.l _drvbits.w,d4
btst.l d3,d4 ; gibt's das Laufwerk überhaupt ?
beq.s gotoOld ; nein
move.l ProtDrive(pc),d4
btst.l d3,d4 ; soll Laufwerk geschützt werden ?
beq.s gotoOld ; nein
.loop: moveq #WRITE_PROTECT,d0
; D3-D7 / A3-A6 werden vom Critical-Error-Handler gerettet
bsr.s CallCritErr ; critical-error-handler aufrufen